package sg.edu.nus.iss.ooad.jass.dao;

import java.util.List;
import sg.edu.nus.iss.ooad.jass.entity.Company;

/**
 *
 * Interface class for Company Data Access Object.
 *
 * @author Isak Rabin (HT082193M)
 * @version 1.0
 * @since 1.0
 *
 * Development Environment : Netbeans IDE v6.7
 * Name of the File        : ICompanyDAO.java
 * Creation / Modification History
 *         Isak Rabin        20-Sep-2009        Created
 *
 */
public interface ICompanyDAO {

         /**
         * Create new company entity and store it to the persistent data.
         * @param company The company entity.
         * @return True if new company successfully created.
         */
        public boolean createCompany(Company company);

        /**
         * Retrieve company entity from persistent data.
         * @param ID The ID of Company.
         * @return Company object or null if Company cannot be found.
         */
        public Company retrieveCompany(String ID);

        /**
         * Update existing company.
         * @param company The company entity.
         * @return True if company has successfully updated.
         */
        public boolean updateCompany(Company company);

        /**
         * Mark company as deleted.
         * @param company The company entity.
         * @return True if company has successfully mark as deleted.
         */
        public boolean deleteCompany(Company company);

        /**
         * Retrieve all advertisers.
         * @return List of company.
         */
        public List<Company> getAllCompany();
}
